phad-setup.php

<?php


$_GET['user'] = $_GET['user'] ?? 'default-user-role';

$options = [
    'item_dir'=>$dir.'/phad/',
    'cache_dir'=>$dir.'/cache/',
    'sitemap_dir'=>$dir.'/sitemap/',
    'pdo' => $lildb->pdo(), // a pdo object
    // 'user' => require(__DIR__.'/phad-user.php'), // a user object (no interface available ...)
    'router' => $router,
    'throw_on_query_failure'=>true,
    'force_compile'=>false,
];
$phad = \Phad::main($options);

$phad->filters['markdown'] = function($v){return 'pretend-this-is-markdown:<p>'.$v.'</p>';};

$phad->integration->setup_liaison_routes($lia);
$phad->integration->setup_liaison_route($lia, '/sitemap.xml', $phad->sitemap_dir.'/sitemap.xml');
// $custom_access = require(__DIR__.'/phad-access.php'); // returns an Access object

// $phad->access = $custom_access;

$phad->access_handlers['main_msg'] = 
    function($ItemInfo){
        echo "This is my custom deletion response. I don't care if deletion succeeded. Id was ".$ItemInfo->args['id'];
        return false;
    };

$phad->access_handlers['never_allow'] = 
    function($ItemInfo){
        return false;
    }
;

$phad->access_handlers['can_submit'] = 
    function($ItemInfo, $ItemRow){
        if (isset($_GET['deny_access'])&&$_GET['deny_access']=='true')return false;
        return true;
    }
;

$phad->access_handlers['permit_me'] = 
    function($data_node, $ItemInfo){
        if ($_GET['permit_me']=='true')return true;
        return false;
    };

$phad->handlers['user_has_role'] = 
function(string $role){
    if (isset($_GET['user'])&&$role == $_GET['user'])return true;
    return false;
}
;

$phad->handlers['can_read_row'] = 
    function(array $ItemRow,object $ItemInfo,string $ItemName){
        if (!isset($_GET['title']))return true;

        if ($ItemRow['title'] == $_GET['title']){
            return true;
        }

        return false;
    };